package com.qzdsoft.erpcloud.vo.sale;

import java.util.Date;
import javax.persistence.*;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.qzdsoft.vo.pu.PurchaseOrderStatus;

public class SaleOrderViEn {
    /**
     * 销售订单id
     */
    @Id
    private Integer id;

    /**
     * 所属公司id
     */
    @Column(name = "company_id")
    private Integer companyId;

    /**
     * 所属公司名称
     */
    @Column(name = "company_name")
    private String companyName;

    /**
     * 单据编号
     */
    @Column(name = "bill_no")
    private String billNo;

    /**
     * 来源单据id
     */
    @Column(name = "source_bill_id")
    private Integer sourceBillId;

    /**
     * 来源单据编号
     */
    @Column(name = "source_bill_no")
    private String sourceBillNo;

    /**
     * 客户Id
     */
    @Column(name = "customer_id")
    private Integer customerId;

    /**
     * 客户名称
     */
    @Column(name = "customer_name")
    private String customerName;

    /**
     * 客户联系人：默认为采购
     */
    @Column(name = "customer_contact_id")
    private Integer customerContactId;

    /**
     * 客户联系人
     */
    @Column(name = "customer_contact_name")
    private String customerContactName;

    /**
     * 联系电话
     */
    @Column(name = "customer_contact_phone")
    private String customerContactPhone;

    /**
     * 收货地址
     */
    @Column(name = "customer_aadr")
    private String customerAadr;

    /**
     * 结算方式：1全额定金 2全额现金 3月结
     */
    @Column(name = "statement_id")
    private Integer statementId;

    /**
     * 结算方式名称
     */
    @Column(name = "statement_name")
    private String statementName;

    /**
     * 结算天数
     */
    @Column(name = "statement_days")
    private Integer statementDays;

    /**
     * 计算币种id
     */
    @Column(name = "statement_currency_id")
    private Integer statementCurrencyId;

    /**
     * 结算币种
     */
    @Column(name = "statement_currency_name")
    private String statementCurrencyName;

    /**
     * 结算汇率：10000=1.0000
     */
    @Column(name = "statement_exchange_rate")
    private Integer statementExchangeRate;

    /**
     * 结算税率：显示时加% 17=0.17
     */
    @Column(name = "statement_tax_rate")
    private Integer statementTaxRate;
    
    /**
     * 结算税率：显示时加%
     */
    private String statementTaxRateName;

    /**
     * 订单总量
     */
    @Column(name = "order_quantity")
    private Integer orderQuantity;

    /**
     * 已交付数量
     */
    @Column(name = "order_delivered_quantity")
    private Integer orderDeliveredQuantity;

    /**
     * 未交付数量
     */
    @Column(name = "order_non_delivery_quantity")
    private Integer orderNonDeliveryQuantity;

    /**
     * 订单未税总金额
     */
    @Column(name = "order_orig_discount_amount")
    private Integer orderOrigDiscountAmount;

    /**
     * 订单含税总金额
     */
    @Column(name = "order_orig_tax_amount")
    private Integer orderOrigTaxAmount;

    /**
     * 创建人
     */
    @Column(name = "creator_id")
    private Integer creatorId;

    /**
     * 创建人
     */
    @Column(name = "creator_name")
    private String creatorName;

    /**
     * 创建时间
     */
    @JsonFormat(timezone="GMT+8",pattern = "yyyy-MM-dd")
    private Date ctime;

    /**
     * 修改人
     */
    @Column(name = "modify_id")
    private Integer modifyId;

    /**
     * 修改人
     */
    @Column(name = "modify_name")
    private String modifyName;

    /**
     * 修改时间
     */
    @JsonFormat(timezone="GMT+8",pattern = "yyyy-MM-dd")
    @Column(name = "modify_time")
    private Date modifyTime;

    /**
     * 审核人
     */
    @Column(name = "review_id")
    private Integer reviewId;

    /**
     * 审核人
     */
    @Column(name = "review_name")
    private String reviewName;

    /**
     * 审核时间
     */
    @JsonFormat(timezone="GMT+8",pattern = "yyyy-MM-dd")
    @Column(name = "review_time")
    private Date reviewTime;

    /**
     * 审核状态：0 未审核  1已审核
     */
    @Column(name = "review_status")
    private Integer reviewStatus;

    /**
     * 状态
     */
    @Column(name = "review_status_name")
    private String reviewStatusName;

    /**
     * 备注
     */
    private String remark;
    
    
    /**
     * 来源类型
     */
    private Integer sourceType;
    /**
     * 来源类型
     */
    public Integer getSourceType() {
		return sourceType;
	}
	public void setSourceType(Integer sourceType) {
		this.sourceType = sourceType;
	}

	/**
     * 获取销售订单id
     *
     * @return id - 销售订单id
     */
    public Integer getId() {
        return id;
    }

    /**
     * 设置销售订单id
     *
     * @param id 销售订单id
     */
    public void setId(Integer id) {
        this.id = id;
    }

    /**
     * 获取所属公司id
     *
     * @return company_id - 所属公司id
     */
    public Integer getCompanyId() {
        return companyId;
    }

    /**
     * 设置所属公司id
     *
     * @param companyId 所属公司id
     */
    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }

    /**
     * 获取所属公司名称
     *
     * @return company_name - 所属公司名称
     */
    public String getCompanyName() {
        return companyName;
    }

    /**
     * 设置所属公司名称
     *
     * @param companyName 所属公司名称
     */
    public void setCompanyName(String companyName) {
        this.companyName = companyName;
    }

    /**
     * 获取单据编号
     *
     * @return bill_no - 单据编号
     */
    public String getBillNo() {
        return billNo;
    }

    /**
     * 设置单据编号
     *
     * @param billNo 单据编号
     */
    public void setBillNo(String billNo) {
        this.billNo = billNo;
    }

    /**
     * 获取来源单据id
     *
     * @return source_bill_id - 来源单据id
     */
    public Integer getSourceBillId() {
        return sourceBillId;
    }

    /**
     * 设置来源单据id
     *
     * @param sourceBillId 来源单据id
     */
    public void setSourceBillId(Integer sourceBillId) {
        this.sourceBillId = sourceBillId;
    }

    /**
     * 获取来源单据编号
     *
     * @return source_bill_no - 来源单据编号
     */
    public String getSourceBillNo() {
        return sourceBillNo;
    }

    /**
     * 设置来源单据编号
     *
     * @param sourceBillNo 来源单据编号
     */
    public void setSourceBillNo(String sourceBillNo) {
        this.sourceBillNo = sourceBillNo;
    }

    /**
     * 获取客户Id
     *
     * @return customer_id - 客户Id
     */
    public Integer getCustomerId() {
        return customerId;
    }

    /**
     * 设置客户Id
     *
     * @param customerId 客户Id
     */
    public void setCustomerId(Integer customerId) {
        this.customerId = customerId;
    }

    /**
     * 获取客户名称
     *
     * @return customer_name - 客户名称
     */
    public String getCustomerName() {
        return customerName;
    }

    /**
     * 设置客户名称
     *
     * @param customerName 客户名称
     */
    public void setCustomerName(String customerName) {
        this.customerName = customerName;
    }

    /**
     * 获取客户联系人：默认为采购
     *
     * @return customer_contact_id - 客户联系人：默认为采购
     */
    public Integer getCustomerContactId() {
        return customerContactId;
    }

    /**
     * 设置客户联系人：默认为采购
     *
     * @param customerContactId 客户联系人：默认为采购
     */
    public void setCustomerContactId(Integer customerContactId) {
        this.customerContactId = customerContactId;
    }

    /**
     * 获取客户联系人
     *
     * @return customer_contact_name - 客户联系人
     */
    public String getCustomerContactName() {
        return customerContactName;
    }

    /**
     * 设置客户联系人
     *
     * @param customerContactName 客户联系人
     */
    public void setCustomerContactName(String customerContactName) {
        this.customerContactName = customerContactName;
    }

    /**
     * 获取联系电话
     *
     * @return customer_contact_phone - 联系电话
     */
    public String getCustomerContactPhone() {
        return customerContactPhone;
    }

    /**
     * 设置联系电话
     *
     * @param customerContactPhone 联系电话
     */
    public void setCustomerContactPhone(String customerContactPhone) {
        this.customerContactPhone = customerContactPhone;
    }

    /**
     * 获取收货地址
     *
     * @return customer_aadr - 收货地址
     */
    public String getCustomerAadr() {
        return customerAadr;
    }

    /**
     * 设置收货地址
     *
     * @param customerAadr 收货地址
     */
    public void setCustomerAadr(String customerAadr) {
        this.customerAadr = customerAadr;
    }

    /**
     * 获取结算方式：1全额定金 2全额现金 3月结
     *
     * @return statement_id - 结算方式：1全额定金 2全额现金 3月结
     */
    public Integer getStatementId() {
        return statementId;
    }

    /**
     * 设置结算方式：1全额定金 2全额现金 3月结
     *
     * @param statementId 结算方式：1全额定金 2全额现金 3月结
     */
    public void setStatementId(Integer statementId) {
        this.statementId = statementId;
    }

    /**
     * 获取结算方式名称
     *
     * @return statement_name - 结算方式名称
     */
    public String getStatementName() {
        return statementName;
    }

    /**
     * 设置结算方式名称
     *
     * @param statementName 结算方式名称
     */
    public void setStatementName(String statementName) {
        this.statementName = statementName;
    }

    /**
     * 获取结算天数
     *
     * @return statement_days - 结算天数
     */
    public Integer getStatementDays() {
        return statementDays;
    }

    /**
     * 设置结算天数
     *
     * @param statementDays 结算天数
     */
    public void setStatementDays(Integer statementDays) {
        this.statementDays = statementDays;
    }

    /**
     * 获取计算币种id
     *
     * @return statement_currency_id - 计算币种id
     */
    public Integer getStatementCurrencyId() {
        return statementCurrencyId;
    }

    /**
     * 设置计算币种id
     *
     * @param statementCurrencyId 计算币种id
     */
    public void setStatementCurrencyId(Integer statementCurrencyId) {
        this.statementCurrencyId = statementCurrencyId;
    }

    /**
     * 获取结算币种
     *
     * @return statement_currency_name - 结算币种
     */
    public String getStatementCurrencyName() {
        return statementCurrencyName;
    }

    /**
     * 设置结算币种
     *
     * @param statementCurrencyName 结算币种
     */
    public void setStatementCurrencyName(String statementCurrencyName) {
        this.statementCurrencyName = statementCurrencyName;
    }

    /**
     * 获取结算汇率：10000=1.0000
     *
     * @return statement_exchange_rate - 结算汇率：10000=1.0000
     */
    public Integer getStatementExchangeRate() {
        return statementExchangeRate;
    }

    /**
     * 设置结算汇率：10000=1.0000
     *
     * @param statementExchangeRate 结算汇率：10000=1.0000
     */
    public void setStatementExchangeRate(Integer statementExchangeRate) {
        this.statementExchangeRate = statementExchangeRate;
    }

    /**
     * 获取结算税率：显示时加% 17=0.17
     *
     * @return statement_tax_rate - 结算税率：显示时加% 17=0.17
     */
    public Integer getStatementTaxRate() {
        return statementTaxRate;
    }

	/**
     * 设置结算税率：显示时加% 17=0.17
     *
     * @param statementTaxRate 结算税率：显示时加% 17=0.17
     */
    public void setStatementTaxRate(Integer statementTaxRate) {
        this.statementTaxRate = statementTaxRate;
    }

    /**
     * 获取订单总量
     *
     * @return order_quantity - 订单总量
     */
    public Integer getOrderQuantity() {
        return orderQuantity;
    }

    public String getStatementTaxRateName() {
    	statementTaxRateName=this.statementTaxRate+"%";
		return statementTaxRateName;
	}
	public void setStatementTaxRateName(String statementTaxRateName) {
		this.statementTaxRateName = statementTaxRateName;
	}
	/**
     * 设置订单总量
     *
     * @param orderQuantity 订单总量
     */
    public void setOrderQuantity(Integer orderQuantity) {
        this.orderQuantity = orderQuantity;
    }

    /**
     * 获取已交付数量
     *
     * @return order_delivered_quantity - 已交付数量
     */
    public Integer getOrderDeliveredQuantity() {
        return orderDeliveredQuantity;
    }

    /**
     * 设置已交付数量
     *
     * @param orderDeliveredQuantity 已交付数量
     */
    public void setOrderDeliveredQuantity(Integer orderDeliveredQuantity) {
        this.orderDeliveredQuantity = orderDeliveredQuantity;
    }

    /**
     * 获取未交付数量
     *
     * @return order_non_delivery_quantity - 未交付数量
     */
    public Integer getOrderNonDeliveryQuantity() {
        return orderNonDeliveryQuantity;
    }

    /**
     * 设置未交付数量
     *
     * @param orderNonDeliveryQuantity 未交付数量
     */
    public void setOrderNonDeliveryQuantity(Integer orderNonDeliveryQuantity) {
        this.orderNonDeliveryQuantity = orderNonDeliveryQuantity;
    }

    /**
     * 获取订单未税总金额
     *
     * @return order_orig_discount_amount - 订单未税总金额
     */
    public Integer getOrderOrigDiscountAmount() {
        return orderOrigDiscountAmount;
    }

    /**
     * 设置订单未税总金额
     *
     * @param orderOrigDiscountAmount 订单未税总金额
     */
    public void setOrderOrigDiscountAmount(Integer orderOrigDiscountAmount) {
        this.orderOrigDiscountAmount = orderOrigDiscountAmount;
    }

    /**
     * 获取订单含税总金额
     *
     * @return order_orig_tax_amount - 订单含税总金额
     */
    public Integer getOrderOrigTaxAmount() {
        return orderOrigTaxAmount;
    }

    /**
     * 设置订单含税总金额
     *
     * @param orderOrigTaxAmount 订单含税总金额
     */
    public void setOrderOrigTaxAmount(Integer orderOrigTaxAmount) {
        this.orderOrigTaxAmount = orderOrigTaxAmount;
    }

    /**
     * 获取创建人
     *
     * @return creator_id - 创建人
     */
    public Integer getCreatorId() {
        return creatorId;
    }

    /**
     * 设置创建人
     *
     * @param creatorId 创建人
     */
    public void setCreatorId(Integer creatorId) {
        this.creatorId = creatorId;
    }

    /**
     * 获取创建人
     *
     * @return creator_name - 创建人
     */
    public String getCreatorName() {
        return creatorName;
    }

    /**
     * 设置创建人
     *
     * @param creatorName 创建人
     */
    public void setCreatorName(String creatorName) {
        this.creatorName = creatorName;
    }

    /**
     * 获取创建时间
     *
     * @return ctime - 创建时间
     */
    public Date getCtime() {
        return ctime;
    }

    /**
     * 设置创建时间
     *
     * @param ctime 创建时间
     */
    public void setCtime(Date ctime) {
        this.ctime = ctime;
    }

    /**
     * 获取修改人
     *
     * @return modify_id - 修改人
     */
    public Integer getModifyId() {
        return modifyId;
    }

    /**
     * 设置修改人
     *
     * @param modifyId 修改人
     */
    public void setModifyId(Integer modifyId) {
        this.modifyId = modifyId;
    }

    /**
     * 获取修改人
     *
     * @return modify_name - 修改人
     */
    public String getModifyName() {
        return modifyName;
    }

    /**
     * 设置修改人
     *
     * @param modifyName 修改人
     */
    public void setModifyName(String modifyName) {
        this.modifyName = modifyName;
    }

    /**
     * 获取修改时间
     *
     * @return modify_time - 修改时间
     */
    public Date getModifyTime() {
        return modifyTime;
    }

    /**
     * 设置修改时间
     *
     * @param modifyTime 修改时间
     */
    public void setModifyTime(Date modifyTime) {
        this.modifyTime = modifyTime;
    }

    /**
     * 获取审核人
     *
     * @return review_id - 审核人
     */
    public Integer getReviewId() {
        return reviewId;
    }

    /**
     * 设置审核人
     *
     * @param reviewId 审核人
     */
    public void setReviewId(Integer reviewId) {
        this.reviewId = reviewId;
    }

    /**
     * 获取审核人
     *
     * @return review_name - 审核人
     */
    public String getReviewName() {
        return reviewName;
    }

    /**
     * 设置审核人
     *
     * @param reviewName 审核人
     */
    public void setReviewName(String reviewName) {
        this.reviewName = reviewName;
    }

    /**
     * 获取审核时间
     *
     * @return review_time - 审核时间
     */
    public Date getReviewTime() {
        return reviewTime;
    }

    /**
     * 设置审核时间
     *
     * @param reviewTime 审核时间
     */
    public void setReviewTime(Date reviewTime) {
        this.reviewTime = reviewTime;
    }

    /**
     * 获取审核状态：0 未审核  1已审核
     *
     * @return review_status - 审核状态：0 未审核  1已审核
     */
    public Integer getReviewStatus() {
        return reviewStatus;
    }

    /**
     * 设置审核状态：0 未审核  1已审核
     *
     * @param reviewStatus 审核状态：0 未审核  1已审核
     */
    public void setReviewStatus(Integer reviewStatus) {
        this.reviewStatus = reviewStatus;
    }

    /**
     * 获取状态
     *
     * @return review_status_name - 状态
     */
    public String getReviewStatusName() {
    	String rs = reviewStatus+"";
        switch(rs){
	        case PurchaseOrderStatus.CLOSE_CODE:
	        	reviewStatusName = PurchaseOrderStatus.CLOSE.getValue();
	            break;
	        case PurchaseOrderStatus.COMPLETE_CODE:
	        	reviewStatusName = PurchaseOrderStatus.COMPLETE.getValue();
	            break;
	        case PurchaseOrderStatus.HAS_REVIEW_CODE:
	        	reviewStatusName = PurchaseOrderStatus.HAS_REVIEW.getValue();
	            break;
	        case PurchaseOrderStatus.NOT_REVIEW_CODE:
	        	reviewStatusName = PurchaseOrderStatus.NOT_REVIEW.getValue();
	            break;
	          default:
	              break;
	    }
        return reviewStatusName;
    }

    /**
     * 设置状态
     *
     * @param reviewStatusName 状态
     */
    public void setReviewStatusName(String reviewStatusName) {
        this.reviewStatusName = reviewStatusName;
    }

    /**
     * 获取备注
     *
     * @return remark - 备注
     */
    public String getRemark() {
        return remark;
    }

    /**
     * 设置备注
     *
     * @param remark 备注
     */
    public void setRemark(String remark) {
        this.remark = remark;
    }
}